package com.sgcc.activiti.mapper;


import com.sgcc.activiti.domain.ExceptionMonitoringDto;
import com.sgcc.activiti.domain.OAnomalyInfo;
import com.sgcc.activiti.domain.vo.TotalFailuresNumberDto;
import feign.Param;

import java.util.List;
import java.util.Map;

/**
 * 监控系统异常Mapper接口
 * 
 * @author sgcc
 * @date 2021-03-22
 */
public interface OAnomalyInfoMapper 
{
    /**
     * 查询监控系统异常
     * 
     * @param id 监控系统异常ID
     * @return 监控系统异常
     */
    public OAnomalyInfo selectOAnomalyInfoById(String id);

    /**
     * 查询监控系统异常列表
     * 
     * @param oAnomalyInfo 监控系统异常
     * @return 监控系统异常集合
     */
    public List<OAnomalyInfo> selectOAnomalyInfoList(OAnomalyInfo oAnomalyInfo);
    
    /**
     * 查询待办流程
     * @param oAnomalyInfo
     * @return
     */
    public List<OAnomalyInfo> selectOAnomalyInfoProcessList(OAnomalyInfo oAnomalyInfo);

    /**
     * 新增监控系统异常
     * 
     * @param oAnomalyInfo 监控系统异常
     * @return 结果
     */
    public int insertOAnomalyInfo(OAnomalyInfo oAnomalyInfo);

    /**
     * 修改监控系统异常
     * 
     * @param oAnomalyInfo 监控系统异常
     * @return 结果
     */
    public int updateOAnomalyInfo(OAnomalyInfo oAnomalyInfo);

    /**
     * 删除监控系统异常
     * 
     * @param id 监控系统异常ID
     * @return 结果
     */
    public int deleteOAnomalyInfoById(String id);

    /**
     * 批量删除监控系统异常
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteOAnomalyInfoByIds(String[] ids);

	public OAnomalyInfo getCount(OAnomalyInfo oAnomalyInfo);

    List<ExceptionMonitoringDto> exceptionMonitoring(Map<String, Object> condition);

    List<TotalFailuresNumberDto> totalFailuresNumber(Map<String, Object> condition);

    List<OAnomalyInfo> getExceptionDetailsList(OAnomalyInfo oAnomalyInfo);

    List<OAnomalyInfo> selectOAnomalyInfoduration(@Param("starttime") String starttime, @Param("endtime")  String endtime);

    List<OAnomalyInfo> selectOAnomalyInfolcsx(@Param("starttime") String starttime,@Param("endtime")  String endtime,@Param("duration") Integer duration);

    List<OAnomalyInfo> selectOAnomalyInfoyccs(@Param("starttime") String starttime,@Param("endtime")  String endtime);
}

